//
//  02_02_返回倒数第 k 个节点.swift
//  Swift-LeetCode
//
//  Created by 卢悦明 on 2024/4/23.
/**
 https://leetcode.cn/problems/kth-node-from-end-of-list-lcci/description/
 
 实现一种算法，找出单向链表中倒数第 k 个节点。返回该节点的值。

 注意：本题相对原题稍作改动
 示例：

 输入： 1->2->3->4->5 和 k = 2
 输出： 4
 说明：
 给定的 k 保证是有效的。
 */

import UIKit

class GetKthToLast: NSObject {
    
    
    func kthToLast(_ head: ListNode<Int>?, _ k: Int) -> Int {
        var first = head
        var two = head
        var index = k
        while index > 0 {
            first = first?.next
            index -= 1
        }
        
        while first != nil {
            first = first?.next
            two = two?.next
        }
        return two!.val
    }
}
